package com.vivo.customer.entity;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class DecorateHideCheckExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public DecorateHideCheckExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(String value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(String value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(String value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(String value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(String value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(String value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLike(String value) {
            addCriterion("id like", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotLike(String value) {
            addCriterion("id not like", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<String> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<String> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(String value1, String value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(String value1, String value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andFkcustomerIdIsNull() {
            addCriterion("FKCustomer_ID is null");
            return (Criteria) this;
        }

        public Criteria andFkcustomerIdIsNotNull() {
            addCriterion("FKCustomer_ID is not null");
            return (Criteria) this;
        }

        public Criteria andFkcustomerIdEqualTo(String value) {
            addCriterion("FKCustomer_ID =", value, "fkcustomerId");
            return (Criteria) this;
        }

        public Criteria andFkcustomerIdNotEqualTo(String value) {
            addCriterion("FKCustomer_ID <>", value, "fkcustomerId");
            return (Criteria) this;
        }

        public Criteria andFkcustomerIdGreaterThan(String value) {
            addCriterion("FKCustomer_ID >", value, "fkcustomerId");
            return (Criteria) this;
        }

        public Criteria andFkcustomerIdGreaterThanOrEqualTo(String value) {
            addCriterion("FKCustomer_ID >=", value, "fkcustomerId");
            return (Criteria) this;
        }

        public Criteria andFkcustomerIdLessThan(String value) {
            addCriterion("FKCustomer_ID <", value, "fkcustomerId");
            return (Criteria) this;
        }

        public Criteria andFkcustomerIdLessThanOrEqualTo(String value) {
            addCriterion("FKCustomer_ID <=", value, "fkcustomerId");
            return (Criteria) this;
        }

        public Criteria andFkcustomerIdLike(String value) {
            addCriterion("FKCustomer_ID like", value, "fkcustomerId");
            return (Criteria) this;
        }

        public Criteria andFkcustomerIdNotLike(String value) {
            addCriterion("FKCustomer_ID not like", value, "fkcustomerId");
            return (Criteria) this;
        }

        public Criteria andFkcustomerIdIn(List<String> values) {
            addCriterion("FKCustomer_ID in", values, "fkcustomerId");
            return (Criteria) this;
        }

        public Criteria andFkcustomerIdNotIn(List<String> values) {
            addCriterion("FKCustomer_ID not in", values, "fkcustomerId");
            return (Criteria) this;
        }

        public Criteria andFkcustomerIdBetween(String value1, String value2) {
            addCriterion("FKCustomer_ID between", value1, value2, "fkcustomerId");
            return (Criteria) this;
        }

        public Criteria andFkcustomerIdNotBetween(String value1, String value2) {
            addCriterion("FKCustomer_ID not between", value1, value2, "fkcustomerId");
            return (Criteria) this;
        }

        public Criteria andFkroomIdIsNull() {
            addCriterion("FKRoom_ID is null");
            return (Criteria) this;
        }

        public Criteria andFkroomIdIsNotNull() {
            addCriterion("FKRoom_ID is not null");
            return (Criteria) this;
        }

        public Criteria andFkroomIdEqualTo(String value) {
            addCriterion("FKRoom_ID =", value, "fkroomId");
            return (Criteria) this;
        }

        public Criteria andFkroomIdNotEqualTo(String value) {
            addCriterion("FKRoom_ID <>", value, "fkroomId");
            return (Criteria) this;
        }

        public Criteria andFkroomIdGreaterThan(String value) {
            addCriterion("FKRoom_ID >", value, "fkroomId");
            return (Criteria) this;
        }

        public Criteria andFkroomIdGreaterThanOrEqualTo(String value) {
            addCriterion("FKRoom_ID >=", value, "fkroomId");
            return (Criteria) this;
        }

        public Criteria andFkroomIdLessThan(String value) {
            addCriterion("FKRoom_ID <", value, "fkroomId");
            return (Criteria) this;
        }

        public Criteria andFkroomIdLessThanOrEqualTo(String value) {
            addCriterion("FKRoom_ID <=", value, "fkroomId");
            return (Criteria) this;
        }

        public Criteria andFkroomIdLike(String value) {
            addCriterion("FKRoom_ID like", value, "fkroomId");
            return (Criteria) this;
        }

        public Criteria andFkroomIdNotLike(String value) {
            addCriterion("FKRoom_ID not like", value, "fkroomId");
            return (Criteria) this;
        }

        public Criteria andFkroomIdIn(List<String> values) {
            addCriterion("FKRoom_ID in", values, "fkroomId");
            return (Criteria) this;
        }

        public Criteria andFkroomIdNotIn(List<String> values) {
            addCriterion("FKRoom_ID not in", values, "fkroomId");
            return (Criteria) this;
        }

        public Criteria andFkroomIdBetween(String value1, String value2) {
            addCriterion("FKRoom_ID between", value1, value2, "fkroomId");
            return (Criteria) this;
        }

        public Criteria andFkroomIdNotBetween(String value1, String value2) {
            addCriterion("FKRoom_ID not between", value1, value2, "fkroomId");
            return (Criteria) this;
        }

        public Criteria andHideTimeIsNull() {
            addCriterion("Hide_Time is null");
            return (Criteria) this;
        }

        public Criteria andHideTimeIsNotNull() {
            addCriterion("Hide_Time is not null");
            return (Criteria) this;
        }

        public Criteria andHideTimeEqualTo(Date value) {
            addCriterion("Hide_Time =", value, "hideTime");
            return (Criteria) this;
        }

        public Criteria andHideTimeNotEqualTo(Date value) {
            addCriterion("Hide_Time <>", value, "hideTime");
            return (Criteria) this;
        }

        public Criteria andHideTimeGreaterThan(Date value) {
            addCriterion("Hide_Time >", value, "hideTime");
            return (Criteria) this;
        }

        public Criteria andHideTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("Hide_Time >=", value, "hideTime");
            return (Criteria) this;
        }

        public Criteria andHideTimeLessThan(Date value) {
            addCriterion("Hide_Time <", value, "hideTime");
            return (Criteria) this;
        }

        public Criteria andHideTimeLessThanOrEqualTo(Date value) {
            addCriterion("Hide_Time <=", value, "hideTime");
            return (Criteria) this;
        }

        public Criteria andHideTimeIn(List<Date> values) {
            addCriterion("Hide_Time in", values, "hideTime");
            return (Criteria) this;
        }

        public Criteria andHideTimeNotIn(List<Date> values) {
            addCriterion("Hide_Time not in", values, "hideTime");
            return (Criteria) this;
        }

        public Criteria andHideTimeBetween(Date value1, Date value2) {
            addCriterion("Hide_Time between", value1, value2, "hideTime");
            return (Criteria) this;
        }

        public Criteria andHideTimeNotBetween(Date value1, Date value2) {
            addCriterion("Hide_Time not between", value1, value2, "hideTime");
            return (Criteria) this;
        }

        public Criteria andHideNameIsNull() {
            addCriterion("Hide_Name is null");
            return (Criteria) this;
        }

        public Criteria andHideNameIsNotNull() {
            addCriterion("Hide_Name is not null");
            return (Criteria) this;
        }

        public Criteria andHideNameEqualTo(String value) {
            addCriterion("Hide_Name =", value, "hideName");
            return (Criteria) this;
        }

        public Criteria andHideNameNotEqualTo(String value) {
            addCriterion("Hide_Name <>", value, "hideName");
            return (Criteria) this;
        }

        public Criteria andHideNameGreaterThan(String value) {
            addCriterion("Hide_Name >", value, "hideName");
            return (Criteria) this;
        }

        public Criteria andHideNameGreaterThanOrEqualTo(String value) {
            addCriterion("Hide_Name >=", value, "hideName");
            return (Criteria) this;
        }

        public Criteria andHideNameLessThan(String value) {
            addCriterion("Hide_Name <", value, "hideName");
            return (Criteria) this;
        }

        public Criteria andHideNameLessThanOrEqualTo(String value) {
            addCriterion("Hide_Name <=", value, "hideName");
            return (Criteria) this;
        }

        public Criteria andHideNameLike(String value) {
            addCriterion("Hide_Name like", value, "hideName");
            return (Criteria) this;
        }

        public Criteria andHideNameNotLike(String value) {
            addCriterion("Hide_Name not like", value, "hideName");
            return (Criteria) this;
        }

        public Criteria andHideNameIn(List<String> values) {
            addCriterion("Hide_Name in", values, "hideName");
            return (Criteria) this;
        }

        public Criteria andHideNameNotIn(List<String> values) {
            addCriterion("Hide_Name not in", values, "hideName");
            return (Criteria) this;
        }

        public Criteria andHideNameBetween(String value1, String value2) {
            addCriterion("Hide_Name between", value1, value2, "hideName");
            return (Criteria) this;
        }

        public Criteria andHideNameNotBetween(String value1, String value2) {
            addCriterion("Hide_Name not between", value1, value2, "hideName");
            return (Criteria) this;
        }

        public Criteria andHideContentIsNull() {
            addCriterion("Hide_content is null");
            return (Criteria) this;
        }

        public Criteria andHideContentIsNotNull() {
            addCriterion("Hide_content is not null");
            return (Criteria) this;
        }

        public Criteria andHideContentEqualTo(String value) {
            addCriterion("Hide_content =", value, "hideContent");
            return (Criteria) this;
        }

        public Criteria andHideContentNotEqualTo(String value) {
            addCriterion("Hide_content <>", value, "hideContent");
            return (Criteria) this;
        }

        public Criteria andHideContentGreaterThan(String value) {
            addCriterion("Hide_content >", value, "hideContent");
            return (Criteria) this;
        }

        public Criteria andHideContentGreaterThanOrEqualTo(String value) {
            addCriterion("Hide_content >=", value, "hideContent");
            return (Criteria) this;
        }

        public Criteria andHideContentLessThan(String value) {
            addCriterion("Hide_content <", value, "hideContent");
            return (Criteria) this;
        }

        public Criteria andHideContentLessThanOrEqualTo(String value) {
            addCriterion("Hide_content <=", value, "hideContent");
            return (Criteria) this;
        }

        public Criteria andHideContentLike(String value) {
            addCriterion("Hide_content like", value, "hideContent");
            return (Criteria) this;
        }

        public Criteria andHideContentNotLike(String value) {
            addCriterion("Hide_content not like", value, "hideContent");
            return (Criteria) this;
        }

        public Criteria andHideContentIn(List<String> values) {
            addCriterion("Hide_content in", values, "hideContent");
            return (Criteria) this;
        }

        public Criteria andHideContentNotIn(List<String> values) {
            addCriterion("Hide_content not in", values, "hideContent");
            return (Criteria) this;
        }

        public Criteria andHideContentBetween(String value1, String value2) {
            addCriterion("Hide_content between", value1, value2, "hideContent");
            return (Criteria) this;
        }

        public Criteria andHideContentNotBetween(String value1, String value2) {
            addCriterion("Hide_content not between", value1, value2, "hideContent");
            return (Criteria) this;
        }

        public Criteria andHideVerdictIsNull() {
            addCriterion("Hide_verdict is null");
            return (Criteria) this;
        }

        public Criteria andHideVerdictIsNotNull() {
            addCriterion("Hide_verdict is not null");
            return (Criteria) this;
        }

        public Criteria andHideVerdictEqualTo(String value) {
            addCriterion("Hide_verdict =", value, "hideVerdict");
            return (Criteria) this;
        }

        public Criteria andHideVerdictNotEqualTo(String value) {
            addCriterion("Hide_verdict <>", value, "hideVerdict");
            return (Criteria) this;
        }

        public Criteria andHideVerdictGreaterThan(String value) {
            addCriterion("Hide_verdict >", value, "hideVerdict");
            return (Criteria) this;
        }

        public Criteria andHideVerdictGreaterThanOrEqualTo(String value) {
            addCriterion("Hide_verdict >=", value, "hideVerdict");
            return (Criteria) this;
        }

        public Criteria andHideVerdictLessThan(String value) {
            addCriterion("Hide_verdict <", value, "hideVerdict");
            return (Criteria) this;
        }

        public Criteria andHideVerdictLessThanOrEqualTo(String value) {
            addCriterion("Hide_verdict <=", value, "hideVerdict");
            return (Criteria) this;
        }

        public Criteria andHideVerdictLike(String value) {
            addCriterion("Hide_verdict like", value, "hideVerdict");
            return (Criteria) this;
        }

        public Criteria andHideVerdictNotLike(String value) {
            addCriterion("Hide_verdict not like", value, "hideVerdict");
            return (Criteria) this;
        }

        public Criteria andHideVerdictIn(List<String> values) {
            addCriterion("Hide_verdict in", values, "hideVerdict");
            return (Criteria) this;
        }

        public Criteria andHideVerdictNotIn(List<String> values) {
            addCriterion("Hide_verdict not in", values, "hideVerdict");
            return (Criteria) this;
        }

        public Criteria andHideVerdictBetween(String value1, String value2) {
            addCriterion("Hide_verdict between", value1, value2, "hideVerdict");
            return (Criteria) this;
        }

        public Criteria andHideVerdictNotBetween(String value1, String value2) {
            addCriterion("Hide_verdict not between", value1, value2, "hideVerdict");
            return (Criteria) this;
        }

        public Criteria andHideDataIsNull() {
            addCriterion("Hide_Data is null");
            return (Criteria) this;
        }

        public Criteria andHideDataIsNotNull() {
            addCriterion("Hide_Data is not null");
            return (Criteria) this;
        }

        public Criteria andHideDataEqualTo(String value) {
            addCriterion("Hide_Data =", value, "hideData");
            return (Criteria) this;
        }

        public Criteria andHideDataNotEqualTo(String value) {
            addCriterion("Hide_Data <>", value, "hideData");
            return (Criteria) this;
        }

        public Criteria andHideDataGreaterThan(String value) {
            addCriterion("Hide_Data >", value, "hideData");
            return (Criteria) this;
        }

        public Criteria andHideDataGreaterThanOrEqualTo(String value) {
            addCriterion("Hide_Data >=", value, "hideData");
            return (Criteria) this;
        }

        public Criteria andHideDataLessThan(String value) {
            addCriterion("Hide_Data <", value, "hideData");
            return (Criteria) this;
        }

        public Criteria andHideDataLessThanOrEqualTo(String value) {
            addCriterion("Hide_Data <=", value, "hideData");
            return (Criteria) this;
        }

        public Criteria andHideDataLike(String value) {
            addCriterion("Hide_Data like", value, "hideData");
            return (Criteria) this;
        }

        public Criteria andHideDataNotLike(String value) {
            addCriterion("Hide_Data not like", value, "hideData");
            return (Criteria) this;
        }

        public Criteria andHideDataIn(List<String> values) {
            addCriterion("Hide_Data in", values, "hideData");
            return (Criteria) this;
        }

        public Criteria andHideDataNotIn(List<String> values) {
            addCriterion("Hide_Data not in", values, "hideData");
            return (Criteria) this;
        }

        public Criteria andHideDataBetween(String value1, String value2) {
            addCriterion("Hide_Data between", value1, value2, "hideData");
            return (Criteria) this;
        }

        public Criteria andHideDataNotBetween(String value1, String value2) {
            addCriterion("Hide_Data not between", value1, value2, "hideData");
            return (Criteria) this;
        }

        public Criteria andAddUserIsNull() {
            addCriterion("Add_User is null");
            return (Criteria) this;
        }

        public Criteria andAddUserIsNotNull() {
            addCriterion("Add_User is not null");
            return (Criteria) this;
        }

        public Criteria andAddUserEqualTo(String value) {
            addCriterion("Add_User =", value, "addUser");
            return (Criteria) this;
        }

        public Criteria andAddUserNotEqualTo(String value) {
            addCriterion("Add_User <>", value, "addUser");
            return (Criteria) this;
        }

        public Criteria andAddUserGreaterThan(String value) {
            addCriterion("Add_User >", value, "addUser");
            return (Criteria) this;
        }

        public Criteria andAddUserGreaterThanOrEqualTo(String value) {
            addCriterion("Add_User >=", value, "addUser");
            return (Criteria) this;
        }

        public Criteria andAddUserLessThan(String value) {
            addCriterion("Add_User <", value, "addUser");
            return (Criteria) this;
        }

        public Criteria andAddUserLessThanOrEqualTo(String value) {
            addCriterion("Add_User <=", value, "addUser");
            return (Criteria) this;
        }

        public Criteria andAddUserLike(String value) {
            addCriterion("Add_User like", value, "addUser");
            return (Criteria) this;
        }

        public Criteria andAddUserNotLike(String value) {
            addCriterion("Add_User not like", value, "addUser");
            return (Criteria) this;
        }

        public Criteria andAddUserIn(List<String> values) {
            addCriterion("Add_User in", values, "addUser");
            return (Criteria) this;
        }

        public Criteria andAddUserNotIn(List<String> values) {
            addCriterion("Add_User not in", values, "addUser");
            return (Criteria) this;
        }

        public Criteria andAddUserBetween(String value1, String value2) {
            addCriterion("Add_User between", value1, value2, "addUser");
            return (Criteria) this;
        }

        public Criteria andAddUserNotBetween(String value1, String value2) {
            addCriterion("Add_User not between", value1, value2, "addUser");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNull() {
            addCriterion("Create_time is null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNotNull() {
            addCriterion("Create_time is not null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeEqualTo(Date value) {
            addCriterion("Create_time =", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotEqualTo(Date value) {
            addCriterion("Create_time <>", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThan(Date value) {
            addCriterion("Create_time >", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("Create_time >=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThan(Date value) {
            addCriterion("Create_time <", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
            addCriterion("Create_time <=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIn(List<Date> values) {
            addCriterion("Create_time in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotIn(List<Date> values) {
            addCriterion("Create_time not in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeBetween(Date value1, Date value2) {
            addCriterion("Create_time between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
            addCriterion("Create_time not between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andLastmodifyTimeIsNull() {
            addCriterion("LastModify_Time is null");
            return (Criteria) this;
        }

        public Criteria andLastmodifyTimeIsNotNull() {
            addCriterion("LastModify_Time is not null");
            return (Criteria) this;
        }

        public Criteria andLastmodifyTimeEqualTo(Date value) {
            addCriterion("LastModify_Time =", value, "lastmodifyTime");
            return (Criteria) this;
        }

        public Criteria andLastmodifyTimeNotEqualTo(Date value) {
            addCriterion("LastModify_Time <>", value, "lastmodifyTime");
            return (Criteria) this;
        }

        public Criteria andLastmodifyTimeGreaterThan(Date value) {
            addCriterion("LastModify_Time >", value, "lastmodifyTime");
            return (Criteria) this;
        }

        public Criteria andLastmodifyTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("LastModify_Time >=", value, "lastmodifyTime");
            return (Criteria) this;
        }

        public Criteria andLastmodifyTimeLessThan(Date value) {
            addCriterion("LastModify_Time <", value, "lastmodifyTime");
            return (Criteria) this;
        }

        public Criteria andLastmodifyTimeLessThanOrEqualTo(Date value) {
            addCriterion("LastModify_Time <=", value, "lastmodifyTime");
            return (Criteria) this;
        }

        public Criteria andLastmodifyTimeIn(List<Date> values) {
            addCriterion("LastModify_Time in", values, "lastmodifyTime");
            return (Criteria) this;
        }

        public Criteria andLastmodifyTimeNotIn(List<Date> values) {
            addCriterion("LastModify_Time not in", values, "lastmodifyTime");
            return (Criteria) this;
        }

        public Criteria andLastmodifyTimeBetween(Date value1, Date value2) {
            addCriterion("LastModify_Time between", value1, value2, "lastmodifyTime");
            return (Criteria) this;
        }

        public Criteria andLastmodifyTimeNotBetween(Date value1, Date value2) {
            addCriterion("LastModify_Time not between", value1, value2, "lastmodifyTime");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}